<?php
/**
 * Controller_Profile
 *
 * Класс Controller_Profile отвечает за обработку страниц профиля
 *
 * @author Mike
 */
class Controller_Profile extends Controller_Base {

	/**
	 * Выбор действия по URL
	 *
	 */
	public function action() {
		$objUser = User_Seance::getUser();
		if(!$objUser->id) User_Seance::moveTo(W_ABSPATH . 'auth/sign_in');
		
		switch ($this->arrRequest[1]) {
			case '':
				$this->actionProfile($objUser);
				break;
			case 'orders' :
				if(!$this->arrRequest[2]) $this->actionUserOrders($objUser);
				else throw new Exception('', 404);
				break;
			default:
				throw new Exception('', 404);
		}
	}

	/**
	 * Главная страница профиля
	 *
	 * @param User_User $objUser - объект пользователя
	 */
	public function actionProfile(User_User $objUser) {
		if (isset($_POST['User_User'])) {
			$objUser = new User_User($_POST['User_User']);
			if($objUser->save()) { // Обновляем данные в статическом объекте, чтобы, к примеру, изменения отобразились при выводе имени и фамилии в блоке в шапке
				User_Seance::UpdateUserFields(array(
					'first_name' => $objUser->getField('first_name'),
					'last_name' => $objUser->getField('last_name'),
				));
			}
		}
		
		$this->title = $this->pageHead = 'Профиль';
				
		$this->showHeader();
			View_Profile::showProfile($objUser);
		$this->showFooter();
	}
	
	/**
	 * Страница заказов пользователя
	 *
	 * @param User_User $objUser - объект пользователя
	 */
	public function actionUserOrders(User_User $objUser) {
		$objOrder = new Order();
		$arrOrders = $objOrder->find('all', array('conditions' => "`order`.`ID_user`='" . $objUser->id . "'"));
		
		$this->bodyAttr = 'user-orders';
		$this->title = $this->pageHead = 'Заказы';
	
		$this->showHeader();
			View_Profile::showOrdersPage($objUser, $arrOrders);
		$this->showFooter();
	}
}